package mapelements.foreground;

import errors.FactoryFailureException;

/**rappresenta la factory che si occupa di produrre vari tipi di ForegorundDispatcher. Infatti se si vuole
 * che un Foreground specifico (ad esempio Bee) venga ascoltato da un particolare listener per monitorare un suo attributo
 * non generale (ad esempio la sua vita) bisogna creare estensioni di ForegroundEvent, di ForegroundEventDispatcher e dello stesso
 * (ovviamente) Foreground. Questa classe consente di generare dinamicamente estensioni di ForegroundEventDispatcher in modo che vengano
 * assegnate (sempre dinamicamente) ai relativi foregorund
 * 
 * @author koldar
 * @version 1.0
 *
 */
public abstract class AbstractForegroundDispatcherFactory {

	/**costruisce una nuova fabbrica per la creazione di ForegroundEventDispatcher
	 * 
	 */
	protected AbstractForegroundDispatcherFactory(){
		super();
	}
	
	/**costruisce un ForegroundEventDispatcher.
	 * 
	 * @return un oggetto di tipo ForegroundEventDispatcher
	 * @throws FactoryFailureException in caso l'istanzializzazione non riesca a realizzarsi
	 */
	public abstract ForegroundEventDispatcher newForegroundDispatcher() throws FactoryFailureException;
}
